#ifndef TOBIIDEVICE_H
#define TOBIIDEVICE_H

#include "TobiiDeviceBase.h"


class TobiiDevice :
	public TobiiDeviceBase
{
public:
	TobiiDevice(IODeviceContext* context);
	virtual ~TobiiDevice();

	virtual int Init();
	virtual int DeInit();

	virtual void SendOperation(IODeviceOperation operation, unsigned int param);

protected:

	virtual void TX_CALLCONVENTION OnEngineConnectionStateChanged(TX_CONNECTIONSTATE connectionState, TX_USERPARAM userParam);
	virtual void TX_CALLCONVENTION OnSnapshotCommitted(TX_CONSTHANDLE hAsyncData, TX_USERPARAM param);
	virtual void TX_CALLCONVENTION OnEvent(TX_CONSTHANDLE hAsyncData, TX_USERPARAM userParam);

	TX_HANDLE m_hGlobalInteractorSnapshot = TX_EMPTY_HANDLE;

	void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior);

	bool InitializeGlobalInteractorSnapshot(TX_CONTEXTHANDLE hContext);
};

#endif
